import { createStore } from 'vuex'

export default createStore({
    state: sessionStorage.getItem('state') ? JSON.parse(sessionStorage.getItem('state')) : {
        tabs_list: [], // tab栏
        user_info: {}, // 用户信息
        role_list: [], // 权限菜单列表 树结构
        check_role_list: [],// 权限校验用 一维数组
        enterprise_list: [], // 拥有或加入的企业
        enterprise_id: '',// 当前企业id
        isCollapse: false,// 全屏
        is_top_menu: false,// 顶部菜单栏
        hidden_tabs: true,// 隐藏 tab栏
        is_all_page: false,// 内容全屏
        current_enterprise_level: [],// 当前企业等级
        balance_info: {},// 当前账户信息
        organization_days: '',// 组织相关 已弃用
        organizationIdList: [], // 组织相关 已弃用
        has_copy_mould: false, // 是否有复制模板相关权限
        product_list: [],// 产品列表
        customForm_right_list: [],// 自定义表单 勾选权限
        condition_setup_list: [],// 自定义表单 勾选条件
    },
    mutations: {
        // 进行数据更新，改变数据状态
        set_balance_info(state, e) {
            state.balance_info = e
        },
        set_organizationIdList(state, e) {
            console.log(e)
            state.organizationIdList = e
        },
        set_organization_days(state, e) {
            state.organization_days = e
        },
        set_current_enterprise_level(state, e) {
            state.current_enterprise_level = e
        },
        change_isCollapse(state) {
            state.isCollapse = !state.isCollapse
        },
        change_top_menu(state, e) {
            if (e) {
                state.is_top_menu = false
            } else {
                state.is_top_menu = !state.is_top_menu
            }
        },
        change_hidden_tabs(state, e) {
            if (e) {
                state.hidden_tabs = false
            } else {
                state.hidden_tabs = !state.hidden_tabs
            }
        },
        change_all_page(state) {
            state.is_all_page = !state.is_all_page
        },
        set_enterprise_list(state, e) {
            state.enterprise_list = e
        },
        set_enterprise_id(state, e) {
            state.enterprise_id = e
        },
        add_tabs_list(state, e) {
            console.log('tabs增加')
            state.tabs_list.some((item) => {
                if (item.is_active) {
                    item.is_active = false
                }
            })
            state.tabs_list.push(e)
            state.tabs_list[state.tabs_list.length - 1].is_active = true
        },
        remove_tabs_list(state, e) {
            if (state.tabs_list.length == 1) {
                return
            }
            if (e.close_self) {
                if (state.tabs_list[e.index].is_active) {
                    state.tabs_list[e.index - 1].is_active = true
                }
            }
            state.tabs_list.splice(e.index, e.length)
        },
        remove_others_tabs(state) { // 刷新 只保留第一个 tabs
            state.tabs_list = [state.tabs_list[0]]
        },
        select_tabs_list(state, e) {
            state.tabs_list.forEach((item) => {
                item.is_active = false
            })
            state.tabs_list[e].is_active = true
        },
        // 初始化 tabs
        clear_tabs_list(state) {
            state.tabs_list = [{
                name: 'function',
                path: '/function',
                label: '运行环境',
                is_active: true,
            }]
        },
        set_user_info(state, e) {
            state.user_info = e
        },
        set_role_list(state, e) {
            state.role_list = e
        },
        set_check_role_list(state, e) {
            state.check_role_list = e
        },
        set_has_copy_mould(state, e) {
            state.has_copy_mould = e
        },
        set_product_list(state, e) {
            state.product_list = e
        },
        set_customForm_right_list(state, e) {
            state.customForm_right_list = e
        },
        clear_customForm_right_list(state) {
            state.customForm_right_list = []
        },
        set_condition_setup_list(state, e) {
            state.condition_setup_list = e
        },
        clear_condition_setup_list(state) {
            state.condition_setup_list = []
        },

    },
    actions: {
        //执行动作，数据请求

    },
    getters: {
        // 获取到最终的数据结果
    }
})
